using System;
using System.Collections.Generic;
using Me.Prettyprint.Cassandra.Model;
using Me.Prettyprint.Cassandra.Model.Thrift;
using Me.Prettyprint.Cassandra.Service;
using Me.Prettyprint.Cassandra.Utils;
using Me.Prettyprint.Hector.Api;
using Me.Prettyprint.Hector.Api.Beans;
using Me.Prettyprint.Hector.Api.Factory;
using Me.Prettyprint.Hector.Api.Mutation;
using Me.Prettyprint.Hector.Api.Query;
using Org.Apache.Cassandra.Thrift;
using Thrift;

namespace Me.Prettyprint.Cassandra.Service.Template
{
	public class MappedSuperCfResultWrapper<K, SN, N, V> : SuperCfResultWrapper<K, SN, N>, MappedSuperCfResult<K, SN, N, V>
	{
        public MappedSuperCfResultWrapper(Serializer<K> keySerializer, Serializer<SN> sNameSerializer,
            Serializer<N> subSerializer, ExecutionResult<Dictionary<byte[], List<ColumnOrSuperColumn>>> executionResult,
            SuperCfRowMapper<K, SN, N, V> mapper) : base(keySerializer, sNameSerializer, subSerializer, executionResult)
        {
            RowMapper = mapper;
        }
        protected SuperCfRowMapper<K, SN, N, V> RowMapper
        {
            get;
            set;
        }
        public V GetRow()
        {
            return RowMapper.MapRow(this);
        }
	}
}